/*     */ package com.zimbra.qa.unittest;
/*     */ 
/*     */ import com.zimbra.cs.security.sasl.SaslInputBuffer;
/*     */ import com.zimbra.cs.security.sasl.SaslOutputBuffer;
/*     */ import com.zimbra.cs.security.sasl.SaslSecurityLayer;
/*     */ import java.nio.ByteBuffer;
/*     */ import javax.security.sasl.SaslException;
/*     */ import junit.framework.TestCase;
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ public class TestSasl
/*     */   extends TestCase
/*     */ {
/*     */   private static final int SIZE = 23456;
/*     */   
/*     */   public void testSaslInputBuffer()
/*     */     throws SaslException
/*     */   {
/*  32 */     SaslInputBuffer buffer = new SaslInputBuffer(23456);
/*  33 */     ByteBuffer data = fill(ByteBuffer.allocate(23460).putInt(23456));
/*  34 */     for (int n = 2; data.hasRemaining(); n *= 2) {
/*  35 */       ByteBuffer bb = data.slice();
/*  36 */       if (bb.remaining() > n) bb.limit(n);
/*  37 */       buffer.put(bb);
/*  38 */       assertFalse(bb.hasRemaining());
/*  39 */       data.position(data.position() + bb.position());
/*  40 */       if (data.hasRemaining()) assertFalse(buffer.isComplete());
/*     */     }
/*  42 */     assertTrue(buffer.isComplete());
/*  43 */     byte[] unwrapped = buffer.unwrap(new SecurityLayer(null));
/*  44 */     checkData(unwrapped, 23456);
/*  45 */     buffer.clear();
/*  46 */     assertFalse(buffer.isComplete());
/*     */   }
/*     */   
/*     */   public void testSaslOutputBuffer() throws SaslException {
/*  50 */     SaslOutputBuffer buffer = new SaslOutputBuffer(1, 23456);
/*  51 */     ByteBuffer data = fill(ByteBuffer.allocate(23456));
/*  52 */     for (int n = 2; data.hasRemaining(); n *= 2) {
/*  53 */       ByteBuffer bb = data.slice();
/*  54 */       if (bb.remaining() > n) bb.limit(n);
/*  55 */       buffer.put(bb);
/*  56 */       assertFalse(bb.hasRemaining());
/*  57 */       data.position(data.position() + bb.position());
/*  58 */       if (data.hasRemaining()) assertFalse(buffer.isFull());
/*     */     }
/*  60 */     assertTrue(buffer.isFull());
/*  61 */     ByteBuffer bb = ByteBuffer.allocate(100);
/*  62 */     buffer.put(bb);
/*  63 */     assertEquals(100, bb.remaining());
/*  64 */     byte[] wrapped = buffer.wrap(new SecurityLayer(null));
/*  65 */     checkData(wrapped, 23456);
/*  66 */     buffer.clear();
/*  67 */     assertFalse(buffer.isFull());
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   public void testKrb5Auth()
/*     */     throws Exception
/*     */   {}
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   private static ByteBuffer fill(ByteBuffer bb)
/*     */   {
/* 119 */     for (int i = 0; bb.hasRemaining(); i++) {
/* 120 */       bb.put((byte)i);
/*     */     }
/* 122 */     bb.flip();
/* 123 */     return bb;
/*     */   }
/*     */   
/*     */   private static void checkData(byte[] b, int size) {
/* 127 */     assertNotNull(b);
/* 128 */     assertEquals(size, b.length);
/* 129 */     for (int i = 0; i < size; i++)
/* 130 */       assertEquals((byte)i, b[i]);
/*     */   }
/*     */   
/*     */   private static class SecurityLayer
/*     */     extends SaslSecurityLayer {
/* 135 */     public String getMechanismName() { return "TEST"; }
/*     */     
/* 137 */     public byte[] wrap(byte[] b, int off, int len) { byte[] r = new byte[len];
/* 138 */       System.arraycopy(b, off, r, 0, len);
/* 139 */       return r;
/*     */     }
/*     */     
/* 142 */     public byte[] unwrap(byte[] b, int off, int len) { return wrap(b, off, len); }
/*     */     
/* 144 */     public Object getNegotiatedProperty(String name) { return null; }
/*     */     
/*     */     public void dispose() {}
/*     */   }
/*     */ }


/* Location:              /home/mint/zimbrastore.jar!/com/zimbra/qa/unittest/TestSasl.class
 * Java compiler version: 7 (51.0)
 * JD-Core Version:       0.7.1
 */